package greedy;

/**
 * @ Author     ：侯耀祖
 * @ Description：
 */
public class canCompleteCircuit {
    //暴力解法事件超限
//    public int canCompleteCircuit(int[] gas, int[] cost) {
//        int sum = 0;
//        int flag = 0;
//        if (gas.length == 0){
//            return -1;
//        }
//        for (int i = 0; i < gas.length; i++) {
//            int j = i;
//            while (j <= cost.length){
//                if (j > cost.length - 1){
//                    j = j / cost.length - 1;
//                }
//                if (j == i){
//                    flag++;
//                }
//                if (flag == 2){
//                    return j;
//                }
//                sum += gas[j];
//                sum -= cost[j];
//                if (sum < 0){
//                    sum = 0;
//                    flag = 0;
//                    break;
//                }
//                j++;
//            }
//        }
//        return -1;
//    }
    public int canCompleteCircuit(int[] gas, int[] cost) {
        int curSum = 0;
        int totalSum = 0;
        int start = 0;
        for (int i = 0; i < gas.length; i++) {
            curSum += gas[i] - cost[i];
            totalSum += gas[i] - cost[i];
            if (curSum < 0){
                start = i + 1;
                curSum = 0;
            }
        }
        if (totalSum < 0){
            return -1;
        }
        return start;
    }
}
